<?php
class NoticeModel extends MY_Model{
    public $table = 't_notice';

    public function __construct(){
        parent::__construct();
    }

    /**
     * 为用户发通知
     * name: send_notice
     * @param string $uid 接收都uid
     * @param string $admin_uid 操作管理员uid
     * @param int $type 通知类型
     * @param string $related_type 关联类型通知关联类型：1用户2帖子3评论  -1
     * @param string $related_id 关联id
     * @param string $reason 原因
     * @param string $punish 惩罚
     * @return bool
     * @throws Exception
     * @Author:taiyang
     */
    public function send_notice($uid='',$admin_uid='',$type=1,$related_type=0,$related_id='',$reason='',$punish=''){
        if(empty($uid)||empty($admin_uid)||empty($type)||(empty($related_type)&&$related_type!=0)||empty($related_id)){
            return false;
        }
        $data=array(
            'uid'=>$uid,
            'admin_uid'=>$admin_uid,
            'type'=>$type,
            'related_type'=>$related_type+1,
            'related_id'=>$related_id,
            'add_time'=>time(),
        );
        //根据类型取出内容和标题
        $res=$this->get_content($data,$reason,$punish);
        $data['title']=$res['title'];
        $data['content']=$res['content'];
        $id=$this->insert_one($data);
        if($id){
            $param = array("code" => $data["add_time"].$id);
            $this->update_data($param, array("id" => $id));
        }
//        $key, $field, $value
//        'news_'.$uid,$key,1
        SyncRedis::setHashData('news_'.$uid,'is_new',1);
        if($id>0){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 根据类型生成标题和内容
     * name: get_content
     * @param array $data  数据数组
     * @param string $reason  原因 文字
     * @param string $punish  惩罚 文字
     * @return array
     * @Author:taiyang
     */
    public function get_content($data=array(),$reason='',$punish=''){
        $customer_service ="@暖光小秘书(QQ:2136179819)";
        switch ($data['type']){
            //-----------------正常操作内容-----------------
            case 1://帖子加精
                $res=array(
                    'title'=>'帖子被推荐',
                    'content'=>'您的帖子已被推荐为精华帖，如有疑问请联系'.$customer_service,
                );
                break;
            case 2://帖子删除（帖子）
                $res=array(
                    'title'=>'帖子被删除',
                    'content'=>'您的帖子因"'.$reason.'"原因已被删除。如有疑问请联系'.$customer_service,
                );
                break;
            case 3://评论被删（评论）
                $res=array(
                    'title'=>'评论被删除',
                    'content'=>'您的评论因"'.$reason.'"原因已被删除。如有疑问请联系'.$customer_service,
                );
                break;
            //-----------------举报属实不属实（举报人）操作内容-----------------
            case 4://举报用户帖子属—举报人
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，您对该贴的举报情况属实，该贴已被删除。感谢您对暖光的贡献，如有疑问请联系'.$customer_service,
                );
                break;
            case 5://举报用户帖子不属—举报人
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，已对该帖用户给予警告处理。感谢您对暖光的支持，如有疑问请联系'.$customer_service,
                );
                break;
            case 6://举报用户属—举报人
                $user=$this->UserModel->query_one(array('uid'=>$data['related_id']));
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，您对"'.$user['nickname'].'"的举报情况属实，已对该用户做出如下处理：'.$punish.'。感谢您对暖光的贡献，如有疑问请联系'.$customer_service,
                );
                break;
            case 7://举报用户不属—举报人
                //查询被举报人
                $user=$this->UserModel->query_one(array('uid'=>$data['related_id']));
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，已对该用户"'.$user['nickname'].'"给予警告处理。感谢您对暖光的支持，如有疑问请联系'.$customer_service,
                );
                break;
            case 8://举报用户评论属—举报人
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，您对该评论的举报情况属实，该评论已被删除。感谢您对暖光的贡献，如有疑问请联系'.$customer_service,
                );
                break;
            case 9://举报用户评论不属—举报人
                $res=array(
                    'title'=>'举报结果反馈',
                    'content'=>'经核实，已对该评论用户给予警告处理。感谢您对暖光的支持，如有疑问请联系'.$customer_service,
                );
                break;
            //-----------------举报属实不属实（举报人）操作内容-----------------
            case 10://被举报帖子属实—被举报人
                $res=array(
                    'title'=>'被举报结果',
                    'content'=>'您的帖子因"'.$reason.'"原因已被删除，请认真阅读社区公约，避免违规行为。如有疑问请联系'.$customer_service,
                );
                break;
            case 11://被举报用户属实—被举报人
                $res=array(
                    'title'=>'被举报结果',
                    'content'=>'您因"'.$reason.'"原因违反社区规定，暂做处理'.$punish.'，请及时纠正。如有疑问请联系'.$customer_service,
                );
                break;
            case 12://被举报评论属实-被举报人
                $res=array(
                    'title'=>'被举报结果',
                    'content'=>'您的评论因"'.$reason.'"原因已被删除，请认真阅读社区公约，避免违规行为。如有疑问请联系'.$customer_service,
                );
                break;
        }
        return $res;
    }

}